<?php


use Phinx\Seed\AbstractSeed;
use Faker\Factory as FakerFactory;
use App\Library\Utils\Arr;

class QuestionSeeder extends AbstractSeed
{

    public function getDependencies(): array
    {
        return [
            'AccountSeeder',
        ];
    }

    /**
     * Run Method.
     *
     * Write your database seeder using this method.
     *
     * More information on writing seeders is available here:
     * https://book.cakephp.org/phinx/0/en/seeding.html
     */
    public function run()
    {
        $faker = FakerFactory::create('zh_CN');

        $users = $this->fetchAll('SELECT * FROM kg_user');

        $titles = $this->getDemoTitles();

        $rows = [];
        for ($i = 0; $i < 100; $i++) {
            $rows[] = [
                'owner_id' => Arr::rand($users)['id'], // 随机用户
                'title' => Arr::rand($titles),
                'cover' => $faker->imageUrl(150, 80, 'technics', true),
                'tags' => '[]',
                'summary' => $faker->text(50),
                'content' => $faker->text(250),
                'published' => Arr::rand([1, 2]),
                'create_time' => $faker->unixTime,
                'update_time' => $faker->unixTime,
            ];
        }
        $this->table('kg_question')->insert($rows)->saveData();
    }

    protected function getDemoTitles(): array
    {
        return [
            'TypeScript是不是世界上最好的语言？',
            'Object-C是不是世界上最好的语言？',
            'Golang是不是世界上最好的语言？',
            'LUA是不是世界上最好的语言？',
            'DoNet是不是世界上最好的语言？',
            'Pascal是不是世界上最好的语言？',
            'Javascript是不是世界上最好的语言？',
            'DoNet是不是世界上最好的语言？',
            'Perl是不是世界上最好的语言？',
            'VBScript是不是世界上最好的语言？',
            'Javascript是不是世界上最好的语言？',
            'Perl是不是世界上最好的语言？',
            'Pascal是不是世界上最好的语言？',
            'Object-C是不是世界上最好的语言？',
            'Rust是不是世界上最好的语言？',
            'Rust是不是世界上最好的语言？',
            'LUA是不是世界上最好的语言？',
            'ActionScript是不是世界上最好的语言？',
            'ActionScript是不是世界上最好的语言？',
            'PHP是不是世界上最好的语言？',
            'LUA是不是世界上最好的语言？',
            'C#是不是世界上最好的语言？',
            'Python是不是世界上最好的语言？',
            'Java是不是世界上最好的语言？',
            'Rust是不是世界上最好的语言？',
            'ActionScript是不是世界上最好的语言？',
            'Pascal是不是世界上最好的语言？',
            'ActionScript是不是世界上最好的语言？',
            'Javascript是不是世界上最好的语言？',
            'Python是不是世界上最好的语言？',
            'Golang是不是世界上最好的语言？',
            'C++是不是世界上最好的语言？',
            'DoNet是不是世界上最好的语言？',
            'Perl是不是世界上最好的语言？',
            'PHP是不是世界上最好的语言？',
            'Object-C是不是世界上最好的语言？',
            'Rust是不是世界上最好的语言？',
            'Rust是不是世界上最好的语言？',
            'Java是不是世界上最好的语言？',
            'C++是不是世界上最好的语言？',
        ];
    }
}
